<template>
  <div>
    官方解释: call和apply可以用来重新定义函数的执行环境，也就是this的指向 换句话说，就是为了改变函数体内部 this 的指向。<br>
    因为 JavaScript 的函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。 <br> <br>

    <span>两个方法效果是一样的，只是传递参数不同，this总是指向调用某个方法的对象，但是使用call()和apply()方法时，就会改变this的指向。</span>

    <p class="notes">相同点：这两个方法的作用是一样的。第一次参数必须是（运行函数的作用域）</p>
    <p class="notes">不同点：apply只能传两个参数，第二个参数是数组，add的参数可以有很多个</p>


    <p class="emphasize">sub想使用add的方法，但是add不让,sub就叫来了call call就带上一个点把add爆菊并且后面带上sub，这样sub就能使用add的方法了</p>



  </div>
</template>

<script>
   export default {
      name: "",
      data() {
        return {

        }
      },
      created() {
        this.add.call(this.sub,1,1)
      },
      methods: {
        add(x, y) {
            console.log(x + y);
        },
        sub(x, y) {
            console.log(x - y);
        },
      }

}
</script>

<style scoped>
.notes {
    color: red;
}
.emphasize {
    color: pink;
}
</style>
